home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacWorld 1999 June
/
Macworld (1999-06).dmg
/
Shareware World
/
Info
/
For Developers
/
ObjectPlant.sea
/
ObjectPlant
/
Object Plant README 2.1.3
< prev
next >
Wrap
Text File
|
1999-03-24
|
30KB
|
536 lines
The Object Plant 2.1.3
Date of Release: 24 March 1999
The Object Plant is a OOA/OOD tool based on the OMT and UML notation. It can be used
to create Object Models, State Diagrams, Event Trace Diagrams and Use Case Diagrams.
The ObjectPlant can also be used to generate C++ or Java code skeletons and/or
documentation on Word 5.1-6.0 RTF format.
C++ and Java code can be reverse engineered (10USD extra per each single license).
The Object Plant folder contents:
- Object Plant PowerPC version of the program
- 68k Object Plant 68k version of the program
- Data type files folder which contains files with data types sets that
can be read into ObjectPlant:
- C++ Data Types text file with a subset of the standard C++ data types
- Java Data Types text file with a subset of the standard Java data types
- Mac Data Types text file with a subset of the standard Mac data types
- NeoAccess_Data_Types text file with a subset of the NeoAccess data types
- PowerPlant_Data_Types text file with a subset of the PowerPlant data types
- Quickdraw_3D_Data_Types text file with a subset of the QuickDraw3D data types
- Code Generation templates folder which contains a set of files that can be used to
generate different kinds of documents, e.g. code
- C++Template.cc template file for generation of C++ code skeletons
- C++Template.h template file for generation of C++ code skeletons
- C++CWTemplate.cc template file for generation of C++ CodeWarrior specific
code skeletons
- C++CWTemplate.h template file for generation of C++ CodeWarrior specific
code skeletons
- C++SpecialTemplate.cc template file for generation of C++ code skeletons
- C++SpecialTemplate.h template file for generation of C++ code skeletons
- Java template file for generation of Java code skeletons
- HTML Template template file for generation of HTML documentation
- Word 5.1-6.0 template file for generation of documentation in
RTF format suitable for Word 5.1-6.0
- 2.0 User's manual the user's manual in pdf (Acrobat) format
- Example (Object Plant) an example document
- Cheat sheet an example document containing information about the
different model items
- Register program for creating register forms to be sent to Kagi
Requirements:
System 7.1 or later
68020 or better
3 Mb free RAM
Registering
To register use the Register program to create a register form which then shall be sent
to Kagi Shareware using mail, email or fax.
The price for a single license is 25 USD, there are also site and world licenses available for
500 USD resp. 2000 USD.
The reverse engineering parts of ObjectPlant require separate registering and the price
for a single license is 10 USD, there are also site and world licenses available for
200 USD resp. 800 USD.
http://www.kagi.com
Email: shareware@kagi.com (1 to 3 day processing time delay)
FAX: +1 510 652 6589 (4 to 8 day processing time delay)
Postal address: (4 to 8 day delay plus transit time to Kagi)
Kagi
1442-A Walnut Street #392-MU
Berkeley, California, 94709-1405
USA
Please note that Kagi automatically rejects any electronic payment that come includes
a hotmail.com address. Refer to http://www.kagi.com/FAQs/hotmail.com
N.B. Kagi is a payment processing company and they are not the author/shipper of the
product. Any problems with receiving registration codes or any problems with the product
itself shall be addressed to the author at m-arc@algonet.se or micke@kagi.com
Registration codes will be sent to you normally within a week after receive a
confirmation of your order from Kagi.
Disclaimer
This software is provided "as-is". I take no responsiblity in any damage caused by the
software, use of the software or any of its outputs such as generated code. Use it at
your own risk.
Changes in 2.1.3 (24 March 1999)
• Corrected bug related to abstract classes code generation. The abstract keyword
(used in the Java template) was output even though the class wasn't abstract.
• Fixed the problem with invisible (white) text strings in exported pictures (PICT format).
• Perhaps fixed the problem with dashed lines being printed as solid lines. (Can someone
who has had this problem verify this and send me an email?)
• Corrected some other problems (duplicated items) in exported pictures (PICT).
• Corrected some bugs in the Interface dialog. It was mostly related to the new
Code Generation parts which didn't work for Interfaces.
• Corrected another bug related to closing of windows. If you closed the project
window and got the "Do you want to save" question and then answered "Cancel"
all items in the main windows were deleted.
• Corrected a bug which could cause a crash if an item (attribute or operation)
was dragged over the Project Window.
• Corrected a bug that caused ObjectPlant to crash in the Preference dialog if you
were using MacOS 8.1 or earlier.
• Removed a memory leak in the drag-n-drop in dialog windows.
• The document is now marked "dirty" if you do a "Page Setup" or change in the
Document Preferences.
• Added command keys for "Generate Code (All)" and "Generate Code (Selected)".
• Changed the ProjectWindow so that one of the panes (ObjectModel, State Diagram,
EventTrace or Use Case) is active (selected). This makes it possible to add new
pages, delete pages and do print operations (setup and print) with the selected
page when the ProjectWindow is in front.
• Added description fields for operation parameters and exceptions. Also changed the
Java code generation template so that @param and @exception descriptions are output.
• Added the name of the page as a header of printouts.
Known Bugs
• The main windows sometimes look "messy". Everything is not erased properly when
moving parts around.
• Moving a set of relationsships and classes can sometimes leave some of the lines
behind.
• If you use code generation, you cannot use the ':' character in class names.
• Line drawing is not very good. When changing between different views lines are not
updated (adjusted) as expected.
• If the "Page Setup" or "Print Page" commands do not work, try selecting a printer in
the chooser.
• Snap to grid is only implemented in the Use Case diagram page.
• Packages cannot be copied.
• EPS output for free text may not be correct. I have no possibility to verify this.
• Using any other font than helvetica may produce strange output when exporting
EPS pictures.
Use the web-page http://www.softsys.se/ObjectPlant/ to get new releases, report bugs etc.
Questions concerning the program can be sent directly to the author at m-arc@algonet.se or
micke@kagi.com
This program should only travel in the complete folder.
Have fun,
Mikael Arctaedius
Stockholm, Sweden
email: m-arc@algonet.se
http://www.softsys.se/ObjectPlant/
Release History
Changes in 2.1.1 (6 March 1999)
• Corrected a bug in Java reverse engineering. Parsing of operation parameters
will now handle arrays properly.
• New Java code generation template which corrects the following problems:
- Added the necessary tags so that a class is declared `abstract'.
- Added the output of exceptions to the VIS_NONE operations.
- Added the necessary tags to the end of each OPERATION clause so that
abstract methods do not put out a "body", but instead simple finish the
declaration with a semicolon.
• Corrected a bug related to parsing C++ code where a constructor's initializer
contained a literal string. This did in previous versions cause the parsing to
be aborted with an error message.
• Generated files will now inherit the template file's colour.
• Added clickable links to my mail-address and ObjectPlant's web-site in the
About dialog.
• Corrected UML notation for static class members. They are now underlined
instead of prepended with the $ character, all in line with the 1.1 version of
the UML notation guide.
• The C++ parser now understands javadoc style comments. This means that
your class, class member comments can be imported into the model
if the are surrounded by /** */.
• Fixed several problems which displaced lines connected to other objects when
the lines weren't rectilinear and the objects and lines were moved.
• Corrected a problem with self-referencing associations and aggregations that
didn't show up in previous versions.
• Changed maximum size of a main window to 1600x1200.
• Corrected a problem with code generation; when a file couldn't be opened because
it was already open by another program, a generated (empty) file wasn't deleted
which it should be since the generation was aborted.
• Error reports in code generation now includes a MacOS error number which will
help identify problems.
• Added support for F1-F4 keys as undo, cut, copy, paste in all text fields and
diagram pages.
• Added support for command-dragging of windows in the background without
bringing the window to the foreground.
• Added a "Find class" and "Find interface" menu command to the Class and Interface
menus. This will activate the page where the class is defined.
• Fixed a bug that changed the system font when importing code.
• Corrected a bug that sometimes made the Add button in the Import Code dialog
active when it shouldn't be and vice versa.
• Corrected some bugs in the Interface dialog. The data/return type popup menu
shall now work correctly and drag-n-drop shall also work correctly.
• Added support for Edit->Cut
• And some other minor bugs have been fixed.
Changes in 2.1 (24 January 1999)
• Corrected a drag-n-drop bug in the project window. This bug caused the program
to hang.
• Corrected a bug that inhibited all further drawing in the Use Case diagram
window after having edited a Use Case name in the main window.
• Corrected some minor updating problem related to free text items.
• Corrected a problem with free text always using helvetica when opening a
document and the "Use System Font" option was enabled.
• Corrected a problem that caused strange behaviour after deleting an item.
If deleted item constrained the possible movement of any other item, the
constraint would remain even though the item was deleted.
• New Word RTF template that also support Word 6.0 RTF format.
• Enhanced the code generation so that it will now be possible to generate
several classes into one common file.
• The code generation should now also be able to generate more {CLASS}
{/CLASS} section outputs, i.e. the code generation will not stop when the
first {/CLASS} tag has been encountered. This was a bug in previous versions.
• Added a "Append set..." button to the data types dialog so that several data
types file may be read without clearing the list every time a new data type
file is read.
Changes in 2.0.5 (12 November 1998)
• Corrected two bugs: one in the preferences dialog and one crash which occured
when doubleclicking on an operations parameter.
Changes in 2.0.4 (11 November 1998)
• Corrected some update problems with Use Cases.
• Corrected bug in code generation. Interface files were stored in the folder above the
specified folder.
• Corrected a crash bug related to importing Java code containing empty
documentation comments.
• Corrected a problem with array arguments when parsing C++ code.
• Corrected a problem with a disappearing Class menu.
• Corrected a crash bug which occured when trying to close all open dialog windows
(option click in the close box of a dialog window).
• Added some keyboard shortcuts for the four main window and also command-up
arrow and command-down arrow to step through the pages in a window.
• Added possibility to select between large and small UML generalization arrows.
• Handles of a line can now be removed using the cut-tool. Option-click on a handle
to remove it.
• Added a preference option to be able to select if lines (association, generalization,
dependency etc) shall be created rectilinear or oblique.
• Added possibility to cut dependency, use case and actor generalization lines.
• Added possibility to specify if the attributes and operations shall be displayed in
a reference class. This is an option in the Object Model section of the preferences
dialog. You can specify that for a certain view either all/selected/none
attributes/operations shall be displayed in reference classes. If the "selected"
option is active, you can select for each reference class if it shall show or hide
the attributes/operations. This is selected by uisng the select tool and option
click on the reference class. A popup-menu will appear where you can select to
hide or show the attributes/operations.
• And much more...
Changes in 2.0.3 (3 October 1998)
• Added support for parsing C++ exception specifiers.
• Added support for inheritance between actors in use case diagrams.
• Added support for type conversion operators, eg:
operator int();
• Added support for parsing of the namespace keyword. When a namespace keyword
is parsed, a corresponding package will be created (remember to change the
"create package" preference option if you are using namespaces).
• Added auto-scrolling for drag-n-drop in the left pane of the class and interface
dialog windows.
• Added possibility to automatically include all implemented operations in a
class implementing an interface.
• Added the possibility to define a set of identifiers which will be ignored when
parsing code. This can be useful to exclude macros which have no meaning for
the class definition, for example the EXPORT_MA and INIT_FMESSAGE macros
used in all MacApp class headers.
• Corrected C++ parsing of operations returning a namespace qualified type.
• Corrected a bug that could cause ObjectPlant freezing when changing the
size of the project window.
• Corrected the parsing of structs within class definitions.
• Expanded the stack in the 68k which should reduce the risk of crashing due to
stack colliding with the heap.
• Corrected another problem with the 68k version. When loading large data type
files ObjectPlant sometimes crashed.
• Corrected a problem that occured after saving a file. Then the wrong resource
file was used which could result in strange errors, for example the help dialog
was empty when being displayed.
• Corrected quite a few problems with the C++ parser.
• And much more...
Changes in 2.0.2 (18 September 1998)
• Added more support for C++ template types. This means that template types will
be parsed correctly even when inherited but templates themselves are still not
supported.
• Corrected a bug that related to importing (reverse engineering) Java comments.
If the comment started on the same line as the /** an error occured causing a
break into MacsBug or if you don't have it installed, ObjectPlant crashed.
• Corrected a bug which could cause a crash when using reference items (class
references or interface references).
• Corrected a giant memory leak which slowly degraded the performance.
• The dialog windows are now resizable but not all fields in the dialogs
respond to the changed size.
• Corrected a bug when parsing java comments related to constructor methods.
• And much more...
Changes in 2.0.1 (7 September 1998)
• Added support for C++ template types. This means that template types will be parsed
correctly but templates themselves are still not supported.
• Added support for reverse enginnering of Java comments. Class, operation and attribute
descriptions within a /** */ comment will be parsed and added to the object model.
• Corrected a problem with a blinking cursor in the Event Trace diagram.
• Corrected a bug that resulted in a "Syntax error" dialog when parsing C++ code
with namespace qualifiers, e.g. void function( ClassA::MyType par1 );
• Java class initializers will now be parsed correctly and not generate a "Syntax error".
• It should now be easier to select and move lines, and in particular to "grab"
the handles of a line.
• New code generation templates for Class.java and C++Template.cc (also separately
released on the web-site).
• Corrected a bug that made the "Import code..." file dialog show up without displaying
either *.h, *.hpp or *.java files.
• Made the file filtering in the Import code dialog case independent.
• Added the lost "By Value" checkbox in the aggregation dialog window.
• Corrected problem in Java parser when extending class by their full path, e.g.
extends awt.Component instead of extends Component. In the latter case a class
named awt.Component was created instead of a class Component in the package awt.
(This goes for the implements statement too.)
• And much more...
Changes in 2.0 (24 August 1998)
• Added C++ and Java reverse engineering. Handles version 1.1 of Java but ignores inner
classes.
• Corrected a bug that caused documents to be corrupted when read into ObjectPlant.
The bug is now fixed, but your documents may still be corrupt if saved after
ObjectPlant had corrupted it. If you have any problems with a document, email it
to me and I'll try to fix it manually.
• Changed the Page Palette into an ordinary Project window listing the pages of all four
diagrams. Closing the Project Window closes the project.
• Made it possible to change the heirarchy of packages.
• Extended Use Case diagrams. Now you can add extension points to a use case.
• Corrected a bug that could cause a crash when creating new documents (File->New)
or when opening old documents (File->Open...).
• Added an option to get type popupmenus sorted (a quick sort performed only on the
first four letters of each word).
• Added an option to get type popupmenus to include all classes defined in the document.
• Corrected the looks of the supplier relation (between a class and an interface).
Now it conforms to UML 1.1 using a generalization arrow.
• Added more small icons (for MacOS 8.5).
• Code generation templates: several instances of the USERCODE tag can now be included
in a code generation template.
• Changed the line drawing algorithm for generalizations, aggregations, associations and
supplier relations. A generalization, aggregation, association and supplier relation can
now be forced to be rectilinear (checkbox in dialog window). If a generalization,
aggregation, association and supplier relation is rectilinear when opening an old file,
the rectilinear checkbox will be set automatically.
• New Java templates that make use of the SYNCHRONIZED tag.
• In abstract classes operations are written in italics only if the operation is abstract.
(This is not yet true for EPS exported pictures.)
• Moved some preferences from being application based to document (project) unique.
• Changed behaviour of the attribute's initializer field (in the class dialog) so that it
scrolls when moving outside of the edit field.
• Added a new code generation tag {REVERSEDEEPANCESTORLIST}. It does basically the
same as the {DEEPANCESTORLIST} but lists the hierarchy the other way round.
• Added a "Continue All" button in the alert warning for a template file that is
younger than the generated file.
• Added a new tag {IMPLEMENTS}{/IMPLEMENTS} that can be used for Java to automatically
generate methods for implemented interfaces. This means that you don't explicitly need
to define these methods in the class to have them generated.
• Added support for Navigation Services (PowerPC only).
• Corrected a bug that caused the preview of exported EPS files not always be stored in
the same folder as the EPS file itself.
• Changed the way the supplier tools works. It will now be consistent with the
generalization tool. You should start pointing to the class and draw a line to
interface and then release the mouse button.
• Corrected a bug related to importing data tupes.
• Added two new data type files, one for Java and one for Mac types.
• The in/out IDL information shall now be visible for both class and interface
operation parameters.
Changes in 1.5.2 (22 May 1998)
• Code generation templates can now have more than one {USERCODE} tag
per {SIGNATURE} tag.
• Added an icon for stationery ObjectPlant document.
• Added a menu item for hiding/showing all palette windows (command-H).
• Corrected the bug that made it hard to create a reference to an interface on a subpage.
• Corrected some problems with storing of the Page Setup information.
• The left-hand pane of the dialog windows (e.g. class dialog windows) shall now be
updated immediately when changing any information in the right-hand pane.
• If a model page covers several printer pages, all of them will be printed.
• And in accordance with previous item, the page boundaries shown in the
main windows are now repeated indefinitely.
• Corrected a bug that caused a crash when removing an inteface having a reference
with a connection to a class.
• Minor correction of the Java template file.
• The interaction name popup menu now includes all inherited operations.
• Corrected a bug related to Paste in textfields in the dialog windows.
• Added a command to the Class menu which can be used to inherit all abstract
operations of the class' superclasses (command-shift-I).
• Better handling of the ATTRIBUTE tag in code generation templates
• If the "Open info window on create" option is checked an info window is opened
for _all_ types of items, including text items.
• Added possibility to set the default values for attributes' visibility and show
checkbox and operations' visibility and show checkbox. These default values
are used when new attributes/operations are created.
• You can now close all dialog windows with one single click if you hold the option
key and close the top dialog window.
• Added a "Transient" attribute to attributes.
• It is now possible to output information from the Use Case diagrams through
code generation.
• Corrected the bug which deleted a not selected attribute/operation when selecting
Edit->Clear.
• Added a preference option to always use the System font.
• Corrected a problem related to Supplier arrows.
• Added a new code generation tag: DEEPANCESTORLIST which gives a list of _all_
ancestors of a class opposed to the ANCESTORLIST tag which only gives the parent
class(es).
• Implemented auto-completion for all textfields having a popup-menu.
• And much more...
Changes in 1.5.1 (27 April 1998)
• Corrected the code generation bug that caused ObjectPlant to crash when using
the Word 5.1 RTF template.
• Moved the "Description:" header in the Interface dialog window.
• Corrected bug that caused the type of interface parameter to be incorrect.
• Nudging interfaces is now working.
• Cut and Paste in description-fields is now implemented.
• Moving several selected interfaces is possible.
• When you have selected an attribute or operation in the class dialog window,
you can use the TAB-key to get to (and select) the name field of the attribute
or operation.
• ANCESTORLIST tag can now be used inside the FILENAME tag.
• Corrected the attribute's initializer field. Previously the characters were
jumping up and down every second character input.
• Corrected a bug in the disclosure-triangle control which caused crashes on
some Macs.
• Corrected handling of text-strings and tags inside the ATTRIBUTE tag.
• Increased the cut-tool's cutting "area".
• Corrected some bugs related to drag-n-drop in the class dialog window.
In 1.5 ObjectPlant could crash if you made a quick drag-n-drop in the left pane.
Furthermore, one couldn't rearrange parameters with drag-n-drop.
• Changed the pop-up menu handling when creating references.
• Added some new code generation tags that can be used inside the {ASSOCLIST}
• Implemented the scrollbars in description textfields.
• And much more...
Changes in 1.5 (19 April 1998)
• Added a dependency tool to create dependency lines between packages.
• Added generalizations in Use Case diagrams.
• Implemented copy of class parameters.
• New layout on dialogs.
• When creating a reference item, e.g. a class reference, the dialog window is
no longer used. Rather a simple popupmenu appears with a list of all classes
(or interfaces) when shift-clicking with the class- or interface-tool.
• Corrected some problems related to line drawing, for example when having
a state diagram self-referencing event and moving the state.
• Corrected some drawing bugs related to "navigable" arrows.
• Names of associations, aggregations, generalizations and suppliers are now displayed.
• DATESTAMP tag is now valid within the FILENAME tags.
• Output from TIMESTAMP tag wil now be in the format selected in the "Date & Time"
control panel.
• Changed the handling of the ATTRIBUTE tag. Now the END tag can be used to specify
the string following the last attribute.
• Corrected some line drawing bugs (in Use Case and State diagrams).
• And much more...
Changes in 1.4.6 (5 February 1998)
• Made major speed improvements. Saving a large file that previously took 17
seconds to save is now done is 4 seconds.
Generating a .cc file for a large file that previously took 25 seconds to
generate is now generated in 1 second.
• Corrected a bug that caused a reference to the wrong class to be created when
creating a reference on a sub-page.
• Corrected a crash bug that occured during save of a document.
• When opening a file that has all the three main windows closed, the menu items
will now be correctly enabled and disabled.
• The "Hide page names" (in references) option is now stored in the preferences file.
• A document is now marked "dirty" when deleting an attribute, operation or
parameter in a dialog window.
• And much more...
Changes in 1.4.5 (24 December 1997)
• Replaced the Mercutio MDEF with the latest version.
• Added an RTF Word 5.1 template file.
• Added new code generation tags: {IFNORETURNTYPE}, {ELSE}, {/IF}
This is a start towards making object pascal code generation templates.
• Added new visibility option: none
• Added new code generation tags: {VIS_NONE}, {/VIS_NONE}
that can be used for package wide visibility used in Java.
• Added possibility to have different preferences for the edit dialogs
(e.g. class dialog window) and the diagram windows.
• Added print setup information to Object Plant documents. Any print setup information
is now stored in the document file.
• Fixed a bug that messed up State Diagram states' events and their action strings.
• Shift-tab can now be used to step backwards through textfields in dialog windows.
• And much more...
Changes in 1.4.4 (16 November 1997)
• Corrected a bug related to closing document with Event Trace diagrams.
The bug caused Object Plant to crash.
• Corrected a bug related to paste in class, interface and state dialog windows.
In the class and interface dialog windows it was impossible to copy-paste
an attribute or operation and in the state dialog window it was impossible to
copy-paste an event.
• Made it possible to create class references based on the content of the
clipboard. By copying a class and then paste it using option-command-V a
class reference will be created instead of a new class.
• Replaced the icon LDEF used in the preferences dialog.
• And much more...
Changes in 1.4.3 (31 October 1997)
• Added several new tags that can be used in the code generation templates:
TIMESTAMP, DATESTAMP, DATETIMESTAMP, PROGRAMMER, DATECREATED, DATEMODIFIED
• The creator type of generated files will now be the same as the template files'.
• Fixed a bug that crashed Object Plant when changing the name to a longer package name.
• Added possibility to indicate navigability of associations and aggregations.
The navigability arrows will only be shown when UML notation is used.
• Moved the "Suppress page name in reference items"-option from the preference dialog
to the the View menu.
• Added more keyboard shortcuts:
command-option-left arrow: align left
command-option-right arrow: align right
command-option-top arrow: align top
command-option-bottom arrow: align bottom
command-option-A: select association tool
command-option-C: select class tool
command-option-G: select generalization tool
command-option-H: select aggregation (has a) tool
command-option-I: select interface tool
• Corrected a couple of EPS bugs.
• And much more...
Changes in 1.4.2 (22 September 1997)
• Added two new tools: text and frame tool. Text tool can be used to insert any free
text string in a diagram. Frame tool can be used to visually group items.
• Reference items can not be copied any more. This is necessary to avoid dangling
pointers (if the original item is deleted when the clipboard contains a reference).
• Names of reference items shall now be correct in association dialogs.
• Dragging "collapsed" windows will now track the mouse correct.
• Using forward delete in the operation dialog when a parameter is selected
will no longer insert a delete character in the text edit field.
• New C++ templates which makes it possible to add initializations in constructors.
• Corrected quite a few bugs in the code generation. Regeneration of code shall be safer
now.